package com.ruoyi.ade.service;

import java.util.List;
import com.ruoyi.ade.domain.AdeKnowledgeCache;
import com.ruoyi.ade.llm.model.AdeRetrivedKnowledge;
import com.ruoyi.ade.model.AdeKnowledgeRetriveRequest;

/**
 * Ade Knowledge CacheService接口
 * 
 * @author wxh
 * @date 2025-07-20
 */
public interface IAdeKnowledgeCacheService 
{


    /**
     * 检索知识   优先命中缓存（关系型数据库表）  否则检索索引数据库(Milvus)
     * @param emr
     * @param request
     * @return
     */
    public List<AdeRetrivedKnowledge> retrieveKnowledge(Long standardId, String emr, AdeKnowledgeRetriveRequest request);
    /**
     * 查询Ade Knowledge Cache
     * 
     * @param id Ade Knowledge Cache主键
     * @return Ade Knowledge Cache
     */
    public AdeKnowledgeCache selectAdeKnowledgeCacheById(Long id);

    /**
     * 查询Ade Knowledge Cache列表
     * 
     * @param adeKnowledgeCache Ade Knowledge Cache
     * @return Ade Knowledge Cache集合
     */
    public List<AdeKnowledgeCache> selectAdeKnowledgeCacheList(AdeKnowledgeCache adeKnowledgeCache);

    /**
     * 新增Ade Knowledge Cache
     * 
     * @param adeKnowledgeCache Ade Knowledge Cache
     * @return 结果
     */
    public int insertAdeKnowledgeCache(AdeKnowledgeCache adeKnowledgeCache);

    /**
     * 修改Ade Knowledge Cache
     * 
     * @param adeKnowledgeCache Ade Knowledge Cache
     * @return 结果
     */
    public int updateAdeKnowledgeCache(AdeKnowledgeCache adeKnowledgeCache);

    /**
     * 批量删除Ade Knowledge Cache
     * 
     * @param ids 需要删除的Ade Knowledge Cache主键集合
     * @return 结果
     */
    public int deleteAdeKnowledgeCacheByIds(Long[] ids);

    /**
     * 删除Ade Knowledge Cache信息
     * 
     * @param id Ade Knowledge Cache主键
     * @return 结果
     */
    public int deleteAdeKnowledgeCacheById(Long id);
}
